Objetivos de aprendizaje
Web: R-spatial
Resumir del libro Lovelace, Nowosad, & Muenchow (2019a)
La geocomputación puede definirse de manera sencilla como “el proceso de aplicar tecnologías de computación a problemas geográficos” (Rees & Turton, 1998). Abrahart, Openshaw, Abrahart, & See (2000) aporta más elementios formales a esta definición destacando que “la geocomputación trata sobre los diferentes tipos de geodatos, y sobre el desarrollo de geo-herramientas relevantes en un contexto científico”.
La geocomputación, por tanto, trata de aplicar técnicas de análisis y estudio de datos a un tipo de datos específicos: los datos espaciales.
La geocomputación está muy relacionado con otros términos como los Sistema de información geográfica (GIS), y con diversos tipos de campos científcos, como las geociencias, las ciencias atmosféricas y climáticas, la topología o la ecología. Así mismo, es ampliamente utilizada en otros ámbitos, como la sociología, análisis político o el desarrollo de aplicaciones para móviles.
Resumir del libro Lovelace et al. (2019a)
En el ámbito del análisis espacial en R, se pueden clasificar los datos espaciales en función del modelo de datos (Lovelace, Nowosad, & Muenchow, 2019b). Se pueden distinguir dos tipos de modelos de datos:
Este modelo está basado en puntos georeferenciados. Los puntos pueden representar localizaciones específicas, como la localización de edificios:
library(ggplot2)
library(sf)
# Hospitales en Toledo segun Eurostat
hosp_toledo <- st_read("data/hosp_toledo.geojson", quiet = TRUE)
ggplot() +
geom_sf(
data = hosp_toledo, aes(fill = "Centros Sanitarios"),
color = "blue"
) +
labs(
caption = "Datos: Eurostat",
title = "Hospitales y Centros de Salud en Toledo",
fill = ""
) +
theme_minimal() +
theme(legend.position = "bottom")
Estos puntos también pueden estar conectados entre sí, de manera que formen geometrías más complejas, como líneas y polígonos:
tajo <- st_read("data/tajo_toledo.shp", quiet = TRUE)
toledo <- st_read("data/toledo_ciudad.gpkg", quiet = TRUE)
ggplot(toledo) +
geom_sf(fill = "cornsilk2") +
geom_sf(data = tajo, col = "lightblue2", lwd = 2, alpha = 0.7) +
geom_sf(data = hosp_toledo, col = "blue") +
coord_sf(
xlim = c(-4.2, -3.8),
ylim = c(39.8, 39.95)
) +
theme_minimal() +
labs(title = "Ciudad de Toledo")
En el ejemplo anterior, el río Tajo está representado como una línea (sucesión de puntos unidos entre sí) y la ciudad de Toledo como un polígono (línea de puntos cerrada formando un continuo). A modo ilustrativo, podemos observar la descomposición en puntos de todos los datos espaciales representados en el gráfico anterior.
Los datos ráster son datos representandos en una rejilla rectangular de píxeles (denomindada matriz) que se puede visualizar en diversos dispositivo de representación. El caso más cotidiano de un ráster es una fotografía, donde la imagen se representa como una serie de celdas, determinadas por la resolución de la imagen (número total de píxeles, determinados como nº de píxeles en cada fila por nº de píxeles en cada columna) y el color que presenta cada uno de estos píxeles.
En el ámbito de los datos espaciales, la definición es muy similar. Un archivo ráster está formado por una malla regular de píxeles georreferenciada:
En el ejemplo anterior, el archivo ráster tiene únicamente una capa (ESP_alt). Eso implica que cada píxel tiene asociado un único valor, en este caso, la altitud media del terreno observada en cada píxel o celda.
| x | y | ESP_alt |
|---|---|---|
| -5.391667 | 40.3 | 1498.312 |
| -5.358333 | 40.3 | 1701.125 |
| -5.325000 | 40.3 | 1825.312 |
| -5.291667 | 40.3 | 1739.062 |
| -5.258333 | 40.3 | 1756.062 |
| -5.225000 | 40.3 | 1659.688 |
| -5.191667 | 40.3 | 1607.375 |
| -5.158333 | 40.3 | 1809.562 |
| -5.125000 | 40.3 | 1874.625 |
| -5.091667 | 40.3 | 1691.312 |
| -5.058333 | 40.3 | 1511.500 |
| -5.025000 | 40.3 | 1207.000 |
| -4.991667 | 40.3 | 1160.125 |
| -4.958333 | 40.3 | 1396.125 |
| -4.925000 | 40.3 | 1624.125 |
Los rásters pueden contener varias capas (o layers), de manera que cada píxel puede tener asociados varios valores. Volviendo al ejemplo de la fotografía, en un modelo simple de color RGB cada píxel lleva asociado 3 valores (rojo, verde o azul), de manera que al combinar las tres capas se puede definir un color distinto en cada píxel.
En el siguiente ejemplo vamos a usar una imagen de mapa georreferenciada, como las proporcionadas por servicios de mapas online, para analizar su composición.
tile <- rast("data/Toledo_multi_tile.tiff")
plotRGB(tile, mar = c(0, 0, 2, 0), main = "Provincia de Toledo")
plot(st_geometry(Tol_prov), add = TRUE)
El ráster se puede descomponer en las tres capas RGB mencionadas anteriormente:
| x | y | lyr.1 | lyr.2 | lyr.3 |
|---|---|---|---|---|
| -5.466412 | 40.34418 | 215.2128 | 208.1061 | 190.5410 |
| -5.463875 | 40.34418 | 228.0369 | 223.1854 | 211.2115 |
| -5.461338 | 40.34418 | 229.3495 | 224.3414 | 213.4325 |
| -5.458800 | 40.34418 | 215.8592 | 208.8660 | 191.2922 |
| -5.456263 | 40.34418 | 219.2696 | 212.8231 | 196.6812 |
| -5.453725 | 40.34418 | 235.0954 | 231.4222 | 222.4115 |
| -5.451188 | 40.34418 | 240.3514 | 237.9094 | 231.4736 |
| -5.448651 | 40.34418 | 237.2358 | 233.7561 | 226.2005 |
| -5.446113 | 40.34418 | 229.9570 | 225.3262 | 214.6201 |
| -5.443576 | 40.34418 | 226.7812 | 221.6796 | 209.2929 |
| -5.441038 | 40.34418 | 222.3593 | 216.5022 | 202.0188 |
| -5.438501 | 40.34418 | 220.9312 | 214.9060 | 200.0306 |
| -5.435964 | 40.34418 | 224.7755 | 219.2661 | 206.2156 |
| -5.433426 | 40.34418 | 222.0479 | 216.0124 | 201.6103 |
| -5.430889 | 40.34418 | 225.0516 | 219.8074 | 207.0263 |
Y cada capa se puede graficar de manera independiente
plot(tile$lyr.1,
main = "Raster tile: Layer 1",
col = hcl.colors(255, "Reds")
)
plot(tile$lyr.2,
main = "Raster tile: Layer 2",
col = hcl.colors(255, "Greens")
)
plot(tile$lyr.3, main = "Raster tile: Layer 3", col = hcl.colors(255, "Blues"))